package dataNotes;

import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.Month;
import java.time.temporal.ChronoUnit;
import java.util.Date;

public class dateUtil {

    //年
    private static int year;
    //月
    private static int month;
    //日
    private static int dates;
    //星期
    private static int week;
    //天数
    private static int day;

    private static SimpleDateFormat f =
            new SimpleDateFormat("今天是 " + "yyyy 年 MM 月 dd 日 E HH 点 mm 分 ss 秒");


    /**
     * 代码里写一个工具类，传入一个日期能查看年份、月份、季度、日期、星期数、是365天中的那一天，用静态方法写
     *
     * @param date
     */
    public static void dateshow(LocalDate date) {
        year = date.getYear();
        month = date.getMonthValue();
        dates = date.getDayOfMonth();
        week = date.getDayOfWeek().getValue();
        day = date.getDayOfYear();
        System.out.println("年：" + year);
        System.out.println("月：" + month);
        System.out.println("日：" + dates);
        System.out.println("星期：" + week);
        System.out.println("一年的第：" + day + "天");
    }

    /**
     * 指定要求格式化一个日期
     *
     * @param date
     */
    public static void formatDate(Date date) {
        // 指定格式化格式
        //SimpleDateFormat f = new SimpleDateFormat("今天是 " + "yyyy 年 MM 月 dd 日 E HH 点 mm 分 ss 秒");
        // 将当前时间袼式化为指定的格式
        synchronized (f) {
            System.out.println(f.format(date));
        }
    }


    /**
     * 日期进行相关操作，进行增减小时、月份、日期
     *
     * @param
     */
    public static void operationDate(LocalDate localDatedate ,LocalTime localTime ) {
        /*
        //java8之前的方法
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);//设置起时间
        System.out.println("输出:"+cal.getTime());
        cal.add(Calendar.YEAR, -1);//减1年
        cal.add(Calendar.MONTH, 1);//加1月
        cal.add(Calendar.DATE, 1);//加1天
        cal.add(Calendar.HOUR, 1);//加一个小时
        System.out.println("输出:"+cal.getTime());
        */

        //java8
        System.out.println("操作之前:" + localDatedate);
        System.out.println("操作之前:" + localTime);
        localDatedate = localDatedate.plusYears(2);  //年份+1
        localDatedate = localDatedate.plusMonths(1); //月份+1
        localDatedate = localDatedate.minusDays(5);  //日期-5

        localTime = localTime.plusHours(2);    //小时+2
        localTime = localTime.minusMinutes(5);  //分钟-5
        localTime = localTime.minusSeconds(20);  //秒数-20
        System.out.println("操作之后:" + localDatedate);
        System.out.println("操作之后:" + localTime);
    }

}

